<html>
<b>Direct ByteBuffer FSTByteBufferOffheap core operations performance (=> is better)</b>
<table border=0 cellpadding=0 cellspacing=0>
<br><br>The following instance is added 4.000.000 times to the offheap. Each object added to the heap can have a tag. The tag can be used to retrieve an object faster, because with 'tag-iteration' only the tag gets decoded. With full iteration, all 4 million objects get decoded during iteration.<br>
<pre><code>    public static class ExampleOrder implements Serializable {
        String product = "ALV";
        long contract = 28374645556l;
        char buySell = 'B';
        int qty = 1000;
        double limit = 22.545;
        String text = "Bla bla bla Bla";
        String member = "CBKFR";
        String owner = "XYZEXTRD013";
        byte restriction = 1;
        byte type = 3;
        Date validity = new Date();
    }</code></pre>thereafter the offheap is iterated (single/multithreaded) by tag and by element.<br><br>
<tr><td><font size=1 color=#8080ff>
&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9612;</font>&nbsp;<font size=2><b>add ExampleOrder (objects/s) (2266000)</b></font></td></tr>
<tr><td><font size=1 color=#8080ff>
&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9612;</font>&nbsp;<font size=2><b>search tag based (objects/s) (6069000)</b></font></td></tr>
<tr><td><font size=1 color=#8080ff>
&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;</font>&nbsp;<font size=2><b>iterate ExampleOrder (objects/s) (2119000)</b></font></td></tr>
<tr><td><font size=1 color=#ff8080>
&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9612;</font>&nbsp;<font size=2><b>4 thread <b>concurrent</b> search tag based (objects/s) (5751000)</b></font></td></tr>
<tr><td><font size=1 color=#ff8080>
&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;</font>&nbsp;<font size=2><b>4 thread <b>concurrent</b> iterate ExampleOrder (objects/s) (5218000)</b></font></td></tr>
</table><br>
<b>Memory mapped File: FSTByteBufferOffheap core operations performance (=> is better)</b>
<table border=0 cellpadding=0 cellspacing=0>
<tr><td><font size=1 color=#8080ff>
&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9612;</font>&nbsp;<font size=2><b>add ExampleOrder (objects/s) (1273000)</b></font></td></tr>
<tr><td><font size=1 color=#8080ff>
&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;</font>&nbsp;<font size=2><b>search tag based (objects/s) (7736000)</b></font></td></tr>
<tr><td><font size=1 color=#8080ff>
&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;</font>&nbsp;<font size=2><b>iterate ExampleOrder (objects/s) (2128000)</b></font></td></tr>
<tr><td><font size=1 color=#ff8080>
&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9612;</font>&nbsp;<font size=2><b>4 thread <b>concurrent</b> search tag based (objects/s) (5671000)</b></font></td></tr>
<tr><td><font size=1 color=#ff8080>
&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;</font>&nbsp;<font size=2><b>4 thread <b>concurrent</b> iterate ExampleOrder (objects/s) (5303000)</b></font></td></tr>
</table><br>
</html>
